<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
namespace Think;

/**
 * 加密解密类
 */
class Crypt {
	private static $handler = '';
	public static function init($type = '') {
		$type = $type ?  : C ( 'DATA_CRYPT_TYPE' );
		$class = strpos ( $type, '\\' ) ? $type : 'Think\\Crypt\\Driver\\' . ucwords ( strtolower ( $type ) );
		self::$handler = $class;
	}
	
	/**
	 * 加密字符串
	 * 
	 * @param string $str
	 *        	字符串
	 * @param string $key
	 *        	加密key
	 * @param integer $expire
	 *        	有效期（秒） 0 为永久有效
	 * @return string
	 */
	public static function encrypt($data, $key, $expire = 0) {
		if (empty ( self::$handler )) {
			self::init ();
		}
		$class = self::$handler;
		return $class::encrypt ( $data, $key, $expire );
	}
	
	/**
	 * 解密字符串
	 * 
	 * @param string $str
	 *        	字符串
	 * @param string $key
	 *        	加密key
	 * @return string
	 */
	public static function decrypt($data, $key) {
		if (empty ( self::$handler )) {
			self::init ();
		}
		$class = self::$handler;
		return $class::decrypt ( $data, $key );
	}
}